Solving the TTC Model Execution Case with FunnyQT

نویسنده

  • Tassilo Horn
چکیده

This paper describes the FunnyQT1 [1, 2] solution of the TTC 2015 Model Execution Case [3]. It implements the third variant of the case description, i.e., it implements the execution semantics of the complete UML Activity Diagram language. The solution project is available on Github2, and it is set up for easy reproduction on a SHARE image3. The solution has won the most correct solution award. FunnyQT is a model querying and transformation library for the functional Lisp dialect Clojure4. Queries and transformations are Clojure programs using the features provided by the FunnyQT API. Clojure provides strong metaprogramming capabilities that are used by FunnyQT in order to define several embedded domain-specific languages (DSL) for different querying and transformation tasks. FunnyQT is designed with extensibility in mind. By default, it supports EMF models and JGraLab TGraph models. Support for other modeling frameworks can be added without having to touch FunnyQT’s internals. The FunnyQT API is structured into several namespaces, each namespace providing constructs supporting concrete querying and transformation use-cases, e.g., model management, functional querying, polymorphic functions, relational querying, pattern matching, in-place transformations, out-place transformations, bidirectional transformations, and some more. For solving the model execution case, only the model management, the functional querying, and the polymorphic functions APIs have been used.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Solving the TTC FIXML Case with FunnyQT

FunnyQT is a model querying and model transformation library for the functional Lisp-dialect Clojure providing a rich and efficient querying and transformation API. This paper describes the FunnyQT solution to the TTC 2014 FIXML transformation case. It solves the core task of generating Java, C#, C++, and C code for a given FIXML message. It also solves the extension tasks of determining reason...

متن کامل

Solving the TTC Java Refactoring Case with FunnyQT

This paper describes the FunnyQT1 [1, 2] solution of the TTC 2015 Java Refactoring Case [3]. It solves all core and exception tasks with the exception of Extension 3: Detecting Refactoring Conflicts and has been elected as overall winner of the case. The solution project is available on Github2, and it is set up for easy reproduction on a SHARE image3. FunnyQT is a model querying and transforma...

متن کامل

Solving the TTC Train Benchmark Case with FunnyQT

This paper describes the FunnyQT1 [1, 2] solution of the TTC 2015 Train Benchmark Case [3]. All core and extension tasks have been solved. The solution project is available on Github2, and it is set up for easy reproduction on a SHARE image3. This solution won the overall quality award for this case. FunnyQT is a model querying and transformation library for the functional Lisp dialect Clojure4...

متن کامل

Solving the TTC Families to Persons Case with FunnyQT

This paper describes the FunnyQT solution to the bidirectional Families to Persons transformation case of TTC 2017. The solution is simple and concise and passes all batch transformations and some incremental tests.

متن کامل

Solving the TTC Movie Database Case with FunnyQT

This paper describes a solution of the TTC 2014 Movie Database Case [3]. All core and extension tasks have been solved. The solution project is available on Github1, and it is set up for easy reproduction on the SHARE2 image. The solution is implemented using FunnyQT [2] which is a model querying and transformation library for the functional Lisp dialect Clojure3. Queries and transformations ar...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015